The present invention relates to local area networks, and more particularly to the control of multiple destination messages in computer networks.
A computer network is a collection of a number of computers which communicate via a network interface. Typically, this network interface employs a layered communication protocol such as the Transport Control Protocol/Internet Protocol (TCP/IP) or other such communication protocols. Computers then communicate using the communication protocol by sending messages to other computers in the network. Often, these messages are in the form of xe2x80x9cpacketsxe2x80x9d of data which typically include a destination address of the computer to receive the data contained in the packet. Layered protocols also often allow for multiple destinations to be specified for a message. Multiple destination messages include broadcast messages (messages which are sent to every computer in the network and/or attached networks) and multi-cast messages (messages which are sent to a specified subset of computers in the network or attached networks).
One difficulty which may arise when multiple destination messages are utilized by a network communications protocol are what is referred to as xe2x80x9cbroadcast storms.xe2x80x9d Broadcast storms occur when multiple broadcast or multi-cast messages are generated at approximately the same time. This sudden increase in communications traffic to all or a substantially all of the nodes in the network or networks can result in congestion problems such as buffer overrun in switches, routers or other network interconnection devices.
Previous attempts to reduce broadcast storms include those described in the O""Connell et al. PCT Application WO96/38956. In O""Connell et al., a management entity monitors traffic through all ports of a switch or bridge and compiles statistics on the number of occasions multicast/broadcast data is being supplied. From either the total or supplied data or both the management entity makes a decision as to whether to permit a further multicast/broadcast message to pass through the switch or bridge. If further multicast/broadcast messages are not to pass through the switch or bridge the messages are routed to a non-existent port.
While the O""Connell et al. system may prevent broadcast storms by determining the total broadcast/messages through a switch, the system also prevents what may be essential messages from being transmitted through the switch. Thus, for example, a critical broadcast message may be routed to the non-existent port simply because it came after a large number of non-critical messages. Furthermore, the O""Connell et al. system does not reduce the network traffic associated with broadcast/multicast messages on the networks where the messages originate but simply prevents propagation of the messages to other networks through the switch or bridge.
Additional mechanisms which relate to congestion problems in various communications systems are illustrated in U.S. Pat. No. 5,636,345, U.S. Pat. No. 5,604,867, U.S. Pat. No. 5,463,620, U.S. Pat. No. 5,282,203, and U.S. Pat. No. 5,530,695. In addition, an existing IBM product, the IBM 8271 Ethernet LAN Switch, contains a broadcast suppression scheme that indiscriminately discards all broadcast packets when a user defined threshold is exceeded. These mechanisms, however, generally have some or all of the same limitations as the O""Connell system.
In light of the above discussion, a need exists for improvements in the prevention or suppression of broadcast traffic in computer networks.
In view of the above discussion, it is an object of the present invention to reduce the likelihood of broadcast storms in a computer network or networks.
A further object of the present invention is to selectively suppress multiple destination messages in a computer network so as to avoid broadcast storms.
Another object of the present invention is to avoid network bandwidth utilization by messages which will be suppressed.
Still a further object of the present invention is to avoid broadcast storms while still allowing critical messages to be transmitted throughout a network or networks.
These and other objects of the present invention are provided by methods, systems and computer program products which control message storms in a network by classifying multiple destination messages into a plurality of broadcast message classes based upon characteristics of the broadcast messages. The number of multiple destination messages for each class of broadcast messages of the plurality of classes of broadcast messages are then counted so as to provide a plurality of broadcast message class counts. Multiple destination messages of a class of broadcast messages are then selectively transmitted based upon the broadcast message class count for the class of broadcast messages.
By classifying and then selectively transmitting multiple destination messages, message storms may be suppressed. Furthermore, because the selective transmission of messages is based on the class of the message multiple destination messages are differentially transmitted which prevents one class of broadcast messages from dominating usage of available resources.
In a particular embodiment of the present invention, multiple destination messages are received at a network device for retransmission by the network device. The received multiple destination messages are categorized into one of the broadcast message classes. It is then determined if the broadcast message class count for the broadcast message class of the received message exceeds a predefined threshold. The multiple destination message is retransmitted if the class count for the broadcast message class of the received multiple destination message does not exceed the predefined threshold. Furthermore, the class counts may be reset after a predefined time interval and a universal count parameter may be updated with the class counts prior to resetting the class counts.
In determining if the received multiple destination message is a multiple destination message, the network device may determine if the message is a broadcast message or a multicast message. Furthermore, the broadcast message classes may include any classification that may be defined from characteristics of the multiple destination message.
In determining the class counts, the class count of the broadcast message class corresponding to the received multiple destination message may be incremented after the message is received. Furthermore, where the network device has multiple ports, a class count for the broadcast message classes is associated with each port of the network device. The class count associated with a port of the device is then incremented for the broadcast message class of a multiple destination message received by the port. The class count associated with the port of the device is also incremented for the broadcast message class of multiple destination messages received by the port from another port of the device. Thus, the class counts include both messages received from the network associated with a port as well as messages received from other ports of the device.
Multiple destination messages of a broadcast message class are discarded by the device if the class count corresponding to the broadcast message class of the multiple destination messages exceeds a predefined threshold. However, if a multiple destination message has associated with the message a discard override, then the multiple destination message may be retransmitted is irrespective of the class count. Furthermore, if a priority associated with the multiple destination message exceeds a predefined priority threshold, then the multiple destination message may also be retransmitted irrespective of the class count.
By discarding messages based on the class count of the message, the present invention allows for increased control of multiple destination messages without preventing essential messages from being transmitted. Furthermore, the priority and discard overrides of the present invention may allow messages to be transmitted even if the class count of the message exceeds a predefined threshold. Such selective control of the discarding of messages allows the present invention better sensitivity to high priority messages while still maintaining the ability to suppress messages to prevent message storms.
The benefits of the present invention may also be obtained in an alternative network interface embodiment of the present invention. In such an embodiment, network traffic is monitored so as to create class counts of messages for the plurality of broadcast message classes. Requests to transmit a multiple destination message onto a network are received by a network interface and categorized to determine the broadcast message class of the request. If the class count corresponding to the broadcast message class of the multiple destination message request does not exceed a predefined threshold, then the multiple destination message corresponding to the multiple destination message request is transmitted.
Thus, by monitoring network traffic, multiple destination messages which may result in a message storm may be prevented from being originated by a workstation or other device associated with the network interface. Preventing multiple destination messages from being transmitted on the originating network increases the available bandwidth on all networks rather than just destination networks as is the case where suppression of the messages occurs at a network device.
In particular embodiments of the present invention, the network traffic is monitored by categorizing a multiple destination message received from the network by the network interface card into one of the plurality of broadcast message classes. The class count corresponding to the received multiple destination message is then incremented for the received message. Similarly, a multiple destination message transmitted by the network interface card is categorized into one of the plurality of broadcast message classes. The class count for the broadcast message class corresponding to the multiple destination message request received by the network interface card is also incremented for the transmitted message. The class counts for the broadcast message classes of the network interface may also be reset after a predefined time interval and a universal count parameter may be updated with the class counts prior to said step of resetting the class counts. The network interface may also utilize the discard override and priority control mechanisms to transmit multiple destination messages irrespective of the class count of the message.
As will further be appreciated by those of skill in the art, the present invention may be embodied as a method, apparatus/system or computer program product.